Erase-suspend system and method

ABSTRACT

A method for suspending an erase operation performed on a group of memory cells in a flash memory circuit is disclosed. One example method includes providing to the memory circuit a command to erase the group of memory cells via a plurality of erase pulses. After applying an erase pulse, if it is determined that another operation has a priority higher than a predetermined threshold, the method suspends the erase operation, performs the other operation, and then resumes the erase operation.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims priority from U.S. Provisional Application No.61/439,296, filed Feb. 3, 2011, which is incorporated herein byreference in its entirety.

TECHNICAL FIELD

The subject technology generally relates to flash memory devices.

BACKGROUND

Flash memory bears little resemblance to a magnetic recording system.Commodity flash chips are closed systems with no external access toanalog signals, in sharp contrast to the typical Hard Disk Drive (HDD)where analog signals have always been available for study. Even though aHDD is a complex electro-mechanical system and can suffer catastrophicfailure, it has been possible to engineer drives to have a lifeexpectancy with little to no degradation in performance, which lastbeyond their time of technical obsolescence. Flash memory, on the otherhand, has a finite life expectancy with gradual degradation inperformance through the life cycle. Even so, since flash memory wasfirst conceived as a memory device, the target error rate at the outputof the chip has been very low, as opposed to systems where strongererror correction coding (ECC) may be used.

Lower priced solid state drives (SSDs) are typically manufactured usingmulti-level cell (MLC) flash memory for increased data capacity, but MLCmay be less reliable than single-level cell (SLC) flash memory. ConsumerSSD manufacturers have mitigated such problems by employinginterleaving, special writing algorithms, and/or providing excesscapacity in conjunction with wear-leveling algorithms. MLC flash lifespan (for example, a total number of programming/erase cycles beforeproducing an unacceptable error rate), however, may be sacrificed tomeet the requirements of mainstream consumer flash applications, whichrequire flash to have low cost, long retention time, fastprogramming/erase, and low overall error rate to work withunsophisticated controllers, and, consequently, has not been provenacceptable for many enterprise SSD applications. Even with the increaseddata capacity of MLC, it may be more expensive to use in enterpriseapplications because of its disproportionately large reduction in cycleendurance due to increased (wear causing) stresses that are required toread, program, and erase the flash.

SUMMARY

A method for suspending an erase operation performed on a group ofmemory cells in a flash memory circuit is disclosed. In one aspect, themethod may include initiating an erase operation on a group of memorycells, the erase operation including a plurality of erase pulses, aftera number of erase pulses, determining that a subsequent operation isready to be performed, suspending the erase operation, performing thesubsequent operation, and resuming the erase operation. In certainaspects, the determining that the subsequent operation is ready to beperformed may include determining the subsequent operation has a higherpriority than the erase operation. Other aspects include correspondingsystems, apparatus, and computer program products for implementation ofthe computer-implemented method.

In another aspect, a machine-readable medium may include instructionsstored thereon that, when executed by a processor, perform a method forsuspending a flash memory erase operation. In this regard, the methodmay include providing to a flash memory circuit an instruction to erasethe group of memory cells using the erase operation, receiving theverify failed status after an erase pulse has been performed and beforethe group of memory cells have been fully erased, determining thatanother (subsequent) operation has a priority above a predeterminedthreshold, suspending the erase operation, performing the subsequentoperation, and resuming the erase operation after performing thesubsequent operation. Other aspects include corresponding systems,apparatus, and computer program products for implementation of themethod.

A system may include a flash memory circuit, including one or moreblocks of memory, and a controller operably connected to the flashmemory circuit. The controller may be operable to provide to the flashmemory circuit an instruction to erase the block of memory cells usingthe erase operation, receive a first indication that the erase operationis not completed and receive a second the indication that a subsequentoperation is ready to be performed. On receiving the second indication,the controller may be operable to suspend the erase operation, performthe subsequent operation, and resume the erase operation. In certainaspects, the subsequent operation has a priority level above apredetermined threshold.

The previously described aspects and other aspects may provide one ormore advantages, including, but not limited to, including an algorithmto reduce the blocking time of the erase operation and, thus, improveinput-output operations (IOPs) performance of the SSD, and, for the samenumber of IOPs used in other SSD applications that do not employ thesubject technology, reduce the flash memory wear-out and achieve highernumber of PR/erase cycles the flash memory can undergo.

It is understood that other configurations of the subject technologywill become readily apparent to those skilled in the art from thefollowing detailed description, wherein various configurations of thesubject technology are shown and described by way of illustration. Aswill be realized, the subject technology is capable of other anddifferent configurations and its several details are capable ofmodification in various other respects, all without departing from thescope of the subject technology. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

A detailed description will be made with reference to the accompanyingdrawings:

FIG. 1 is a block diagram illustrating example components of a datastorage system.

FIG. 2 is a graph diagram illustrating example voltage evolutions offour possible distributions of memory cells in a MLC flash memory cellduring an erase operation.

FIG. 3 is a graph diagram illustrating an example erase operationprocedure flow and erase parameters.

FIG. 4 is a graph diagram illustrating an example pulse-by-pulse shiftof a programmed threshold voltage distribution during the application ofan example Incremental Step Pulse Erase (ISPE) procedure.

FIG. 5 is a graph diagram illustrating an example method of suspendingan erase operation after a first erase pulse.

FIG. 6 is a flowchart illustrating an example method for suspending anerase operation performed on a group of memory cells.

DETAILED DESCRIPTION

The subject technology provides a system and method for use in flashmemory cell architectures that adjust erase conditions to increase thenumber of operations that may be performed simultaneously on a flashmemory device. Using the subject technology, a flash memory device maybe reconfigured during the operation of the device to reduce wear andincrease performance of the overall SSD system. A number of parametersmay be adjusted, including the number of erase pulses used to fullyerase programmed memory cells in the flash memory device. During anerase operation, after applying a limited number of erase pulses (forexample, one), the subject technology suspends the erase operation andallows other, higher priority, operations to execute. Accordingly,operation throughput is increased and a positive impact on SSDperformance is achieved.

The detailed description set forth below is intended as a description ofvarious configurations of the subject technology and is not intended torepresent the only configurations in which the subject technology may bepracticed. The appended drawings are incorporated herein and constitutea part of the detailed description. The detailed description includesspecific details for the purpose of providing a thorough understandingof the subject technology. However, it will be apparent to those skilledin the art that the subject technology may be practiced without thesespecific details. In some instances, well-known structures andcomponents are shown in block diagram form in order to avoid obscuringthe concepts of the subject technology. Like components are labeled withidentical element numbers for ease of understanding.

In a flash memory device (for example, with NAND architecture), memorycells are grouped in strings, with each string consisting of a set oftransistors connected in series between a drain select transistor,connected to a bit line of the memory block, and a source selecttransistor, connected to a reference voltage distribution line. Eachmemory cell may include a floating-gate MOS transistor. When programminga memory cell, electrons are injected into the floating-gate, forexample, by means of Fowler-Nordheim (F-N) Tunneling. The non-volatilityof the cell may be due to the electrons maintained within thefloating-gate. Bits may be stored by trapping charge on the floatinggate (an electrically isolated conductor) which stores a logic valuedefined by its threshold voltage (read threshold) commensurate with theelectric charge stored. When the cell is erased, the electrons in thefloating gate may be removed by quantum tunneling (a tunnel current)from the floating gate to, for example, the source and/or substrate.

As a flash memory device ages, error rates may increase due toincreasingly changing threshold voltage conditions. For example, asflash memory is cycled (that is, programmed and erased repeatedly), itsphysical qualities may change. In this regard, the repeated placementand removal of electrons to and from the floating gate duringprogramming and erase operations, respectively, may cause some excesselectrons to be trapped in the device, or, in some cases, damage to thestructure of the device. For example, when one or multiple cells areprogrammed, adjacent cells may experience an unexpected and undesiredcharge injection to their floating gates, thus leading to corruption ofdata stored therein and errors when the data is read. Electrons mayeventually leak into neighboring cells after prolonged stress due to thevoltages at the gates of neighboring cells. Moreover, the repeatedapplication of a high tunnel current generated during an erase operationmay eventually wear down the insulation between the floating gate andthe source and/or substrate. This is further aggravated by shorter erasecycles using, for example, a high negative charge. Corruption of datamay result from the loss of electrons through weakened insulators duringcell idle time.

Adding enough electrons may change a cell from an erased state to aprogrammed state, or cause a change between programmed states.Similarly, removing electrons may change a cell from a first programmedstate to a different programmed state, or to an erased state. Generally,the impact to the threshold voltages of the memory cells may be afunction of the field strength (voltage) and duration of charge appliedto the cells. That is, programming the flash memory to high thresholdvoltage conditions may increase the amount of electrons that leak intoneighboring cells for both program and erase processes because eachcycle requires a longer duration and/or higher applied fields.

Longer erase times have been shown to be beneficial in reducingwear-out/degradation of flash memory gate insulators during cycling,however, at a significant loss to operational efficiency. Contrary toindustry practice, the subject technology alleviates this and otherproblems by providing a mechanism for increasing the number ofoperations that may be performed on a flash memory device without theneed to sacrifice erase time or device life span, and, hence, improvesthe performance of a SSD that uses the technology. As will be describedin further detail, the subject technology may dynamically suspend anerase operation performed on a group of memory cells in a non-volatilememory circuit before the group of memory cells has been fully erased toallow other high priority operations to execute.

FIG. 1 is a block diagram illustrating example components of a datastorage system according to one aspect of the subject technology. Asdepicted in FIG. 1, data storage system 100 (for example, a solid statedrive) includes data storage controller 101, storage medium 102, andflash memory 103. Controller 101 may use storage medium 102 fortemporary storage of data and information used to manage data storagesystem 100. Controller 101 may include several internal components (notshown) such as a read-only memory, a flash component interface (forexample, a multiplexer to manage instruction and data transport along aserial connection to flash memory 103), an I/O interface, errorcorrection circuitry, and the like. In some aspects, all of theseelements of controller 101 may be integrated into a single chip. Inother aspects, these elements may be separated on their own PC board.

Controller 101 may also include a processor configured to execute codeor instructions to perform the operations and functionality describedherein, manage request flow and address mappings, and to performcalculations and generate commands. The processor of controller 101 isconfigured to monitor and control the operation of the components indata storage controller 101. The processor may be a general-purposemicroprocessor, a microcontroller, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA), a programmable logic device (PLD), a controller, astate machine, gated logic, discrete hardware components, or acombination of the foregoing. One or more sequences of instructions maybe stored as firmware on ROM within controller 101 and/or its processor.One or more sequences of instructions may be software stored and readfrom storage medium 102, flash memory 103, or received from host device104 (for example, via host interface 105). ROM, storage medium 102,flash memory 103, represent examples of machine or computer readablemedia on which instructions/code executable by controller 101 and/or itsprocessor may be stored. Machine or computer readable media maygenerally refer to any medium or media used to provide instructions tocontroller 101 and/or its processor, including both volatile media, suchas dynamic memory used for storage media 102 or for buffers withincontroller 101, and non-volatile media, such as electronic media,optical media, and magnetic media.

In some aspects, controller 101 is configured to store data receivedfrom a host device 104 in flash memory 103 in response to a writecommand from host device 104. Controller 101 is further configured toread data stored in flash memory 103 and to transfer the read data tohost device 104 in response to a read command from host device 104. Aswill be described in more detail below, controller 101 is configured to,on determining certain operating conditions are present, suspend anerase operation performed on a block and/or page of memory. Bydynamically and selectively suspending erase operations performed onflash memory 103, the subject technology may improve SSD performance andreduce flash memory wear compared to performance of SSD using flashmemory cells in the same application environment without the ability todynamically suspend erase operations.

Host device 104 represents any device configured to be coupled to datastorage system 100 and to store data in data storage system 100. Hostdevice 104 may be a computing system such as a personal computer, aserver, a workstation, a laptop computer, PDA, smart phone, and thelike. Alternatively, host device 104 may be an electronic device such asa digital camera, a digital audio player, a digital video recorder, andthe like.

In some aspects, storage medium 102 represents volatile memory used totemporarily store data and information used to manage data storagesystem 100. According to one aspect of the subject technology, storagemedium 102 is random access memory (RAM) such as double data rate (DDR)RAM. Other types of RAM also may be used to implement storage medium102. Memory 102 may be implemented using a single RAM module or multipleRAM modules. While storage medium 102 is depicted as being distinct fromcontroller 101, those skilled in the art will recognize that storagemedium 102 may be incorporated into controller 101 without departingfrom the scope of the subject technology. Alternatively, storage medium102 may be a non-volatile memory such as a magnetic disk, flash memory,peripheral SSD, and the like.

As further depicted in FIG. 1, data storage system 100 may also includehost interface 105. Host interface 105 is configured to be coupled tohost device 104, to receive data from host device 104 and to send datato host device 104. Host interface 105 may include both electrical andphysical connections for operably coupling host device 104 to controller101, for example, via the I/O interface of controller 101. Hostinterface 105 is configured to communicate data, addresses, and controlsignals between host device 104 and controller 101. Alternatively, theI/O interface of controller 101 may include and/or be combined with hostinterface 105. Host interface 105 may be configured to implement astandard interface, such as Serial-Attached SCSI (SAS), Fiber Channelinterface, PCI Express (PCIe), SATA, USB, and the like. Host interface105 may be configured to implement only one interface. Alternatively,host interface 105 (and/or the I/O interface of controller 101) may beconfigured to implement multiple interfaces, which are individuallyselectable using a configuration parameter selected by a user orprogrammed at the time of assembly. Host interface 105 may include oneor more buffers for buffering transmissions between host device 104 andcontroller 101.

Flash memory 103 represents a non-volatile memory device for storingdata. According to one aspect of the subject technology, flash memory103 includes, for example, a NAND flash memory. Flash memory 103 mayinclude a single flash memory device or chip, or, as depicted by FIG. 1,may include multiple flash memory devices or chips arranged in multiplechannels. Flash memory 103 is not limited to any particular capacity orconfiguration. For example, the number of physical blocks, the number ofphysical pages per physical block, the number of sectors per physicalpage, and the size of the sectors may vary within the scope of thesubject technology.

Flash memory may have a standard interface specification. This standardensures that chips from multiple manufacturers can be usedinterchangeably (at least to a large degree). The interface may furtherhide the inner working of the flash memory and return only internallydetected bit values for data. The interface of flash memory 103 may beused to access one or more internal registers 106 and an internal flashcontroller 107. In some aspects, registers 106 may include address,command, control, and/or data registers, which internally retrieve andoutput the necessary data to and from a NAND memory cell array 108. Forexample, a data register may include data to be stored in memory array108, or data after a fetch from memory array 108, and may also be usedfor temporary data storage and/or act like a buffer. An address registermay store the memory address from which data will be fetched to host 104or the address to which data will be sent and stored. In some aspects, acommand register may be included to control parity, interrupt control,and/or the like. In some aspects, internal flash controller 107 isaccessible via a control register to control the general behavior offlash memory 103. Internal flash controller 107 and/or the controlregister may control the number of stop bits, word length, receiverclock source, and may also control switching the addressing mode, pagingcontrol, coprocessor control, and the like.

In some aspects, registers 106 may include a test register. The testregister may, for example, be accessed by specific addresses and/or datacombinations provided at the interface of flash memory 103 (for example,by specialized software provided by the manufacturer to perform varioustests on the internal components of the flash memory). The test registermay be used to access and/or modify other internal registers, forexample, the command and/or control registers. In some aspects, testmodes accessible via the test register may be used to input or modifycertain programming conditions of flash memory 103 (for example, eraseparameters) to dynamically vary how data is programmed or erased fromthe memory cells of memory arrays 108.

FIG. 2 is a graph diagram illustrating example voltage evolutions offour possible distributions of memory cells in a MLC flash memory cellduring an erase operation according to one aspect of the subjecttechnology. A MLC cell (for example, a 2-bit NAND cell) may beprogrammed to one of four levels: an erased level, and three programmedlevels. After one or more programming cycles, each group of cellsprogrammed to a respective level may yield a distribution of cells (forexample, about the programmed level). Accordingly, each group of cellsmay form a L0 distribution state (for example, binary 11), L1distribution state (binary 01), L2 distribution state (binary 00), or L3distribution state (binary 10).

In some aspects, a memory block may be programmed one page at a timeusing an Incremental Step Pulse Program (ISSP) and erased using asimilar Incremental Step Pulse Erase Erase (ISPE). The ISPP and/or ISPEmay be performed by flash controller 107 in response to one or moreinstructions (for example, commands) received from controller 101. Forexample, using an ISPP, a page operation may be performed by applying avoltage at the gates of each cell in the memory page. A correspondingselection at the bit lines creates a voltage potential in the selectedgroup of memory cells to create one or more distributions that aredifferent than the erased L0 distribution state (for example, binary11).

During an Erase operation in 1-bit/cell (SLC) or 2-bit/cell (MLC) NANDflash memory, memory cells are returned to the erased state. In thisregard, flash memory 103 may be instructed by controller 101 to performan Incremental Step Pulse Erase (ISPE) procedure to apply a series ofvoltage pulses to the memory cells which are being erased. The amplitudepolarity may be reversed (from ISPP) during the erase operation toremove electrons from the floating gates of the memory cells. Thevoltage evolution of such an erase operation is depicted in FIG. 2 bythe arrows 201 representing cells of the L1 distribution, L2distribution, and L3 distribution being returned to the L0 distributionstate, with each cell falling below a threshold voltage 202corresponding to an erased state (for example, zero volts). In someaspects, the status of the cells may be verified by applying an eraseverify (EV) voltage 203 (for example, at a second threshold voltage) toconfirm that the cells have indeed been erased.

FIG. 3 is a graph diagram illustrating an example erase operationprocedure flow and erase parameters according to one aspect of thesubject technology. An erase operation may include a series of voltagepulses 301 that are applied in a step pattern with the amplitude of eachpulse incrementally increased with increasing pulse number (N_(erase)),starting from a starting pulse voltage (V_(start)) 302. Controller 101may be configured to provide to flash memory 103 (for example, bysetting one or more registers 106) one or more erase parameters to usein generating one or more of the erase pulses, including, for example,starting pulse voltage (V_(start)) 302, an amplitude increment (ΔV) 303,a pulse width (T_(pulse)) 304, time between pulses, and the like. Theerase parameters (some of which are depicted in FIG. 3), such asstarting erase voltage V_(start), voltage amplitude increment ΔV,current erase pulse number N_(erase), erase pulse width T_(pulse), andmaximum allowed number of erase pulses N_(max), may be stored in severalregisters inside the NAND flash chip. In some aspects, the eraseparameters may be defined separately for each pulse or series of pulses.Given a manufacturer's specification for a particular type of flashmemory it will be recognizable how to select the appropriate parametersas input to an ISPE to achieve an erased distribution (for example, L0)from a selected higher distribution (for example, L1, L2, or L3).

FIG. 4 is a graph diagram illustrating an example pulse-by-pulse shiftof a programmed threshold voltage distribution during the application ofan example ISPE procedure according to one aspect of the subjecttechnology. During SSD operation, controller 101 may instruct flashcontroller 107 to issue an erase command for a given memory block tostart the ISPE procedure. Flash memory 103 may, as part of the ISPE,apply a number of erase pulses (for example, pulse 1 to pulse N) to thememory cells of the block. During the application of the ISPE procedure,a programmed threshold voltage distribution (Lx) 401 may be graduallyshifted 402 to the left (to a lower value) with each pulse, until all ofthe cells in a block are sufficiently erased to populate the L0distribution state 403, that is, have their threshold voltages below apredetermined erase verify (EV) level 404. At the conclusion of the ISPEprocedure, flash memory 103 may return a “Pass” status, indicating thatthe erase operation is complete, or a “Fail” status, indicating thaterase failed.

In some aspects, the pulse width, T_(pulse), for an individual ISPEerase pulse may be on the order of 0.5 to 1.0 ms, and, the duration ofthe erase-verify operation may be on the order of 200 μs. Consequently,the total time required to perform a block erase operation may be on theorder of 2.5 to 10 ms (for example, with an application of 5 to 20 erasepulses). While one block on a given flash memory die is being erased,another program, erase, or a read operation may be prohibited from beingperformed on another block on that or a different flash memory die.Since other operations are blocked during the 2.5 to 10 ms required tocomplete the current erase operation, the erase operation may be seen asa blocking operation. This blocking property of the erase operation mayreduce the overall number of Input-Output Operations (IOPs) that can beperformed on a die during a predetermined period of time, and hence,negatively impact the performance of the SSD.

A longer, milder erase operation may be performed using more erasepulses (for example, over 10 pulses), smaller negative voltageamplitude, and/or a longer pulse width to reduce thewear-out/degradation of the flash memory cells during cycling. Thelonger the time required for an erase operation, however, the greaterthe possibility of a negative impact on SSD performance, for example, inoperation or data throughput. Consequently, the blocking property of alonger, milder erase operation may worsen performance to a point wherethe negative impact on performance outweighs the intended benefit of theoperation to reduce wear-out/degradation of the flash memory. Thesubject technology alleviates these problems by providing a mechanism tosuspend an erase operation after one or more pulses, and briefly passcontrol to other operations. In this regard, by allowing other, higherpriority, operations to be completed during a longer, milder eraseoperation, the subject technology may facilitate a reduction ofwear-out/degradation of the flash memory cells while increasingoperation throughput and providing a positive impact on SSD performance.

FIG. 5 is a graph diagram illustrating an example method of suspendingan erase operation after a first erase pulse according to one aspect ofthe subject technology. Controller 101 may be operable (for example, byexecution of an algorithm) to program and/or send commands to flashmemory 103 to perform the erase operation on a block of memory cellsone-pulse-at-a-time (with a verify operation after every pulse); thatis, the maximum allowed number of erase pulses N_(max) is equal to 1,contrary to other ISPE procedures, which may apply all of the erasepulses until all of the cells in the block are erased, In the depictedexample, the erase (ER) operation may be suspended 501 after Pulse 1.One or more other operations (for example, one or more higher priorityprogram (PR), erase (ER), or a read (RD) operations) are then performed502 on one or more other blocks or pages of one or more flash memorydevices in data storage system 100 while the erase operation issuspended. After the one or more other operations are performed,controller 101 may resume 503 the original erase (ER) operation at Pulse2. Controller 101 may, for example, provide an instruction to flashmemory 103 instructing it to continue erasing the block of memory cells.Erase procedure parameters, including, the starting erase voltage,V_(start), the voltage amplitude increment, ΔV, erase pulse number,N_(erase), and the erase pulse width, T_(pulse), may be stored instorage medium 102 and/or flash memory 103 by the controller 101, andrecalled and set prior to resuming the original erase operation. In someaspects, these parameters may also be stored in registers 106 insideflash memory 103.

FIG. 6 is a flowchart illustrating an example method for suspending anerase operation performed on a group of memory cells according to oneaspect of the subject technology. In step 601, controller 101 sets amaximum allowed number of erase pulses, N_(max), to 1 and stores N_(max)in an appropriate register 106 inside the flash memory 103. In step 602,a single erase pulse is applied (for example, by controller 107 of flashmemory 103) to the block and/or page being erased. In step 603,controller 101 determines whether the block and/or page is fully erased.Setting N_(max) to 1 programs flash memory 103 to return a “Fail” statusto controller 101 after applying a single erase pulse, unless the blockis fully erased. If the erase is complete then the process ends.Otherwise, the process proceeds to step 604. As described previously,some block ISPE operations may require application of a plurality ofpulses (5 to 20 erase pulses, for example.) In some aspects, datastorage system 100 may store a command queue in storage medium 102 formaintaining pending program and/or read operations and a priority valuefor each operation.

In step 604, after the flash chip is partially erased and returns a“Fail” status after Pulse 1 is applied, the controller 101 may beoperable to perform checks (for example, against the command queue) todetermine if there are other program or read operations (or anothererase operation) with higher priority that are waiting to be performedon some other block (for example, in the same or different die). If suchoperations are pending (for example, in the host command queue), in step605, the erase operation may be suspended, the other pending operationsperformed in step 606, and the erase operation resumed in step 607 atPulse 2 using the correct Pulse 2 parameters. Alternatively, in step604, if it is determined that there is no other program or readoperation with higher priority, the erase operation resumes in step 607.Consequently, a number erase pulses may be administered by repeatingstep 602 prior to a suspend-erase operation taking place.

In step 607, the erase operation is resumed. Prior to resuming the eraseoperation, controller 107 may determine Pulse 2 parameters based onvalues stored in one or more registers 106. In another aspect,controller 101 may determine (for example, calculate) the correct Pulse2 parameters based on the saved erase parameters and program registers106 before controller 107 makes its determination. In one example,referring briefly to FIG. 3, the negative value of the amplitude ofPulse 2, V_(pulse2) 305, may be found asV _(pulse2)=−(V _(start) +ΔV*N _(erase))  (1)where V_(start) 302 is the starting erase voltage, applied at Pulse 1and N_(erase) is the erase pulse number (N_(erase) is set to 1 in thefirmware after application of Pulse 1).

Controller 101 (or controller 107) may change the erase pulseparameters, V_(pulse) and T_(pulse) as functions of pulse number,N_(pulse), or other SSD parameters, according to a predetermined set ofrules (for example, based on parameters stored in registers 106, storagemedium 102, or the like). Once the parameters are determined, theprocess is returned to step 602 using the new parameters. Likewise, ifthere are no higher priority operations pending as a result of the checkperformed in step 604, the process proceeds to step 607 and the eraseoperation resumed.

By allowing the erase procedure to be suspended after every pulse, theblocking time of the erase operation may be reduced from the totalduration of the erase operation—for example, 2.5 to 10 ms—to theduration of the single erase pulse, T_(pulse) (plus the time requiredfor the verify operation, for example, about 200 μs). In this regard,the procedure of the subject technology T_(pulse) may be set muchsmaller than if other technologies were used. For example, whereinT_(pulse) may have been set at 0.5 to 1.0 ms, T_(pulse) can be reducedby about 5 times to, for example, 100 to 200 μs, while incrementing thenegative magnitude of the erase pulses only at every 5th erase pulse,instead of at every single pulse. This results in a blocking time of theerase operation below 0.5 ms. Reducing the blocking time of the eraseoperation may increase the number of IOPs for a given die, and, hence,increases the overall performance of the SSD.

Additionally or in the alternative, using an erase-suspend procedure ofthe subject technology, longer individual pulses with T_(pulse) on theorder of 2.5 to 10 ms may be applied instead of, for example, 0.5 to 1.0ms pulses found in other technologies, while using smaller values ofstarting erase voltage, V_(start), and voltage amplitude increment, ΔV.Since the erase operation can be suspended after every pulse, this mayresult in an increase of the total erase time, while the blocking timeof the erase operation, and, hence the SSD performance, remainsunchanged. As described previously, using more erase pulses with smallernegative voltage amplitude and/or with longer pulse width reduces thewear-out/degradation of flash memory cells during cycling. Thus, theimplementation of the subject technology may reduce thewear-out/degradation of the flash memory and to achieve higherendurance, that is, a higher number of P/E cycles the flash memory canundergo, while maintaining the same IOPs performance of the SSD.

Those of skill in the art would appreciate that the various illustrativeblocks, modules, elements, components, methods, and algorithms describedherein may be implemented as electronic hardware, computer software, orcombinations of both. To illustrate this interchangeability of hardwareand software, various illustrative blocks, modules, elements,components, methods, and algorithms have been described above generallyin terms of their functionality. Whether such functionality isimplemented as hardware or software depends upon the particularapplication and design constraints imposed on the overall system.Skilled artisans may implement the described functionality in varyingways for each particular application. Various components and blocks maybe arranged differently (e.g., arranged in a different order, orpartitioned in a different way) all without departing from the scope ofthe subject technology.

It is understood that the specific order or hierarchy of steps in theprocesses disclosed is an illustration of exemplary approaches. Basedupon design preferences, it is understood that the specific order orhierarchy of steps in the processes may be rearranged. Some of the stepsmay be performed simultaneously. The accompanying method claims presentelements of the various steps in a sample order, and are not meant to belimited to the specific order or hierarchy presented.

The previous description is provided to enable any person skilled in theart to practice the various aspects described herein. The previousdescription provides various examples of the subject technology, and thesubject technology is not limited to these examples. Variousmodifications to these aspects will be readily apparent to those skilledin the art, and the generic principles defined herein may be applied toother aspects. Thus, the claims are not intended to be limited to theaspects shown herein, but is to be accorded the full scope consistentwith the language claims, wherein reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” Unless specifically statedotherwise, the term “some” refers to one or more. Pronouns in themasculine (e.g., his) include the feminine and neuter gender (e.g., herand its) and vice versa. Headings and subheadings, if any, are used forconvenience only and do not limit the invention.

The predicate words “configured to”, “operable to”, and “programmed to”do not imply any particular tangible or intangible modification of asubject, but, rather, are intended to be used interchangeably. Forexample, a processor configured to monitor and control an operation or acomponent may also mean the processor being programmed to monitor andcontrol the operation or the processor being operable to monitor andcontrol the operation. Likewise, a processor configured to execute codecan be construed as a processor programmed to execute code or operableto execute code.

A phrase such as an “aspect” does not imply that such aspect isessential to the subject technology or that such aspect applies to allconfigurations of the subject technology. A disclosure relating to anaspect may apply to all configurations, or one or more configurations.An aspect may provide one or more examples. A phrase such as an aspectmay refer to one or more aspects and vice versa. A phrase such as an“embodiment” does not imply that such embodiment is essential to thesubject technology or that such embodiment applies to all configurationsof the subject technology. A disclosure relating to an embodiment mayapply to all embodiments, or one or more embodiments. An embodiment mayprovide one or more examples. A phrase such as an “embodiment” may referto one or more embodiments and vice versa. A phrase such as a“configuration” does not imply that such configuration is essential tothe subject technology or that such configuration applies to allconfigurations of the subject technology. A disclosure relating to aconfiguration may apply to all configurations, or one or moreconfigurations. A configuration may provide one or more examples. Aphrase such as a “configuration” may refer to one or more configurationsand vice versa.

The word “exemplary” is used herein to mean “serving as an example orillustration.” Any aspect or design described herein as “exemplary” isnot necessarily to be construed as preferred or advantageous over otheraspects or designs.

All structural and functional equivalents to the elements of the variousaspects described throughout this disclosure that are known or latercome to be known to those of ordinary skill in the art are expresslyincorporated herein by reference and are intended to be encompassed bythe claims. Moreover, nothing disclosed herein is intended to bededicated to the public regardless of whether such disclosure isexplicitly recited in the claims. No claim element is to be construedunder the provisions of 35 U.S.C. §112, sixth paragraph, unless theelement is expressly recited using the phrase “means for” or, in thecase of a method claim, the element is recited using the phrase “stepfor.” Furthermore, to the extent that the term “include,” “have,” or thelike is used in the description or the claims, such term is intended tobe inclusive in a manner similar to the term “comprise” as “comprise” isinterpreted when employed as a transitional word in a claim.

1. A method for performing an erase operation in a flash memory device,the method comprising: initiating an erase operation on a group ofmemory cells, the erase operation including a plurality of erase pulses;after a predetermined number of erase pulses, determining if asubsequent operation is ready to be performed; suspending the eraseoperation if the subsequent operation is ready to be performed;performing the subsequent operation; and resuming the erase operation.2. The method of claim 1, further comprising: determining the subsequentoperation has a higher priority than the erase operation.
 3. The methodof claim 1, wherein the subsequent operation is performed on a differentgroup of memory cells.
 4. The method of claim 1, further comprising:setting the predetermined number of erase pulses to a maximum number oferase pulses to be performed by the erase operation before the eraseoperation is suspended.
 5. The method of claim 4, wherein the maximumnumber of erase pulses is one.
 6. The method of claim 1, furthercomprising: receiving an indication that the erase operation is notcompleted, wherein the erase operation is suspended upon receiving theindication that the erase operation is not completed.
 7. The method ofclaim 1, further comprising: setting one or more parameters used togenerate one or more of the plurality of erase pulses.
 8. The method ofclaim 7, wherein the one or more parameters includes a starting pulsevoltage.
 9. The method of claim 7, wherein the one or more parametersincludes an incremental adjustment in a pulse magnitude betweensubsequent pulses.
 10. The method of claim 7, wherein the one or moreparameters includes a pulse width.
 11. The method of claim 1, furthercomprising: prior to resuming the erase operation, resetting one or moreexisting parameters used to generate one or more of the plurality oferase pulses based on one or more saved parameters.
 12. Amachine-readable storage media having instructions stored thereon that,when executed by a processor, perform a method for suspending an eraseoperation, the method comprising: providing to a flash memory circuit afirst instruction to erase a group of memory cells using the eraseoperation; receiving a first indication that the erase operation is notcompleted if the group of memory cells has not been fully erased after apredetermined number of erase pulses has been performed; receiving asecond indication that a subsequent operation has a priority above apredetermined threshold; suspending the erase operation in response toreceiving the first indication and the second indication; performing thesubsequent operation; and resuming the erase operation.
 13. Themachine-readable storage media of claim 12, wherein the predeterminedthreshold is the priority of the erase operation.
 14. Themachine-readable storage media of claim 12, the method furthercomprising providing to the flash memory circuit one or more parametersto use in generating one or more of the erase pulses to be used in theerase operation.
 15. The machine-readable storage media of claim 12, themethod further comprising: after suspending and prior to resuming theerase operation, providing to the flash memory circuit one or moreparameters to use in generating one or more subsequent erase pulsesinitiated after resuming the erase operation.
 16. The machine-readablestorage media of claim 15, wherein the one or more parameters includesone or more of a starting pulse voltage, an amplitude increment, and apulse width.
 17. The machine-readable storage media of claim 15, whereinthe erase operation is an incremental stepping pulse erase operation.18. The machine-readable storage media of claim 12, wherein the resumingthe erase operation comprises: providing to the flash memory circuit asecond instruction to continue erasing the group of memory cells.
 19. Asystem, comprising: a flash memory circuit, the flash memory circuitincluding one or more blocks of memory; and a controller operablyconnected to the flash memory circuit, the controller operable to:provide to the flash memory circuit an instruction to erase the block ofmemory cells using an erase operation; receive a first indication thatthe erase operation is not completed if the block of memory cells hasnot been fully erased after a predetermined number of erase pulses;receive a second indication that a subsequent operation is ready to beperformed; and on receiving the first indication and the secondindication, suspend the erase operation, perform the subsequentoperation, and resume the erase operation.
 20. The system of claim 19,wherein the controller is further operable to: determine the subsequentoperation is associated with a priority level above a predeterminedthreshold.